home *** CD-ROM | disk | FTP | other *** search
-
-
-
- SSSSEEEEDDDD((((1111)))) SSSSEEEEDDDD((((1111))))
-
-
-
- NNNNAAAAMMMMEEEE
- sed - stream editor
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- sssseeeedddd [----nnnn] script [file ...]
-
- sssseeeedddd [----nnnn] [----eeee script]... [----ffff script_file]... [file ...]
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _s_e_d copies the named _f_i_l_e_s (standard input default) to the standard
- output, edited according to a script of commands. The ----eeee option causes
- the script to be take from the _s_c_r_i_p_t option argument. The ----ffff option
- causes the script to be taken from file _s_c_r_i_p_t__f_i_l_e. The scripts from
- the ----eeee and ----ffff options accumulate. If there is just one ----eeee option and no
- ----ffff options, the flag ----eeee may be omitted. The ----nnnn option suppresses the
- default output.
-
- _s_e_d has two operating modes. By default, _s_e_d operates compatibly with
- certain earlier versions of System V _s_e_d. If the environment variable
- ____XXXXPPPPGGGG is defined, and has a numeric value greater than 0, _s_e_d operates in
- conformance with the X/Open XPG4 specifications. In the backward
- compatibility mode, when ----nnnn is not specified and the """"pppp"""" option to the
- """"ssss"""" command is used, the pattern space will be output only once, no
- matter how many substitutions are made. Also, the format of the output
- of the """"llll"""" command will differ in some details from the XPG4 format.
-
- Note that the null string is a part of the solutions when _XPG numerical
- value > 0. i.e., sed -e 's/b*/a/' will insert "a" at the beginning of any
- input as "b*" would match an empty string. To substitute the first non-
- empty string consisting of one or more letter b's with "a", then it
- should be: sed -e 's/bb*/a/'
-
- A script consists of editing commands, one per line, of the following
- form:
-
- [ address [ , address ] ] function [ arguments ]
-
- Zero or more blank characters are accepted before the first address and
- before command.
-
- Each input _f_i_l_e is a text file to be edited. The _f_i_l_e_s are read in the
- order given.
-
- In normal operation, _s_e_d cyclically copies a line of input into a _p_a_t_t_e_r_n
- _s_p_a_c_e (unless there is something left after a DDDD command), applies in
- sequence all commands whose _a_d_d_r_e_s_s_e_s select that pattern space, and at
- the end of the script copies the pattern space to the standard output
- (except when ----nnnn is specified) and deletes the pattern space. Whenever
- the pattern space is written to standard output or a named file, sed will
- immediately follow it with a newline character.
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- SSSSEEEEDDDD((((1111)))) SSSSEEEEDDDD((((1111))))
-
-
-
- Some of the commands use a _h_o_l_d _s_p_a_c_e to save all or part of the _p_a_t_t_e_r_n
- _s_p_a_c_e for subsequent retrieval. The _h_o_l_d and _p_a_t_t_e_r_n _s_p_a_c_e_s each hold at
- least 8192 bytes.
-
- An _a_d_d_r_e_s_s is either a decimal number that counts input lines
- cumulatively across files, a $$$$ that addresses the last line of input, or
- a context address, i.e., a ////_r_e_g_u_l_a_r _e_x_p_r_e_s_s_i_o_n//// in the style of _e_d(1)
- modified thus:
-
- In a context address, the construction \\\\?_r_e_g_u_l_a_r _e_x_p_r_e_s_s_i_o_n?, where
- ? is any character, is identical to ////_r_e_g_u_l_a_r _e_x_p_r_e_s_s_i_o_n////.
- Note that in the context address \\\\xxxxaaaabbbbcccc\\\\xxxxddddeeeeffffxxxx, the second xxxx
- stands for itself, so that the regular expression is aaaabbbbccccxxxxddddeeeeffff.
- The escape sequence \\\\nnnn matches a new-line _e_m_b_e_d_d_e_d in the pattern
- space.
- A period .... matches any character except the _t_e_r_m_i_n_a_l new-line of the
- pattern space.
- A command line with no addresses selects every pattern space.
- A command line with one address selects each pattern space that
- matches the address.
- A command line with two addresses selects the inclusive range from
- the first pattern space that matches the first address through
- the next pattern space that matches the second. (If the second
- address is a number less than or equal to the line number first
- selected, only one line is selected.) Thereafter the process
- is repeated, looking again for the first address.
- \\\\<<<< and \\\\>>>> are not currently supported.
-
- Editing commands can be applied only to non-selected pattern spaces by
- use of the negation function !!!! (below).
-
- In the following list of functions the maximum number of permissible
- addresses for each function is indicated in parentheses.
-
- The _t_e_x_t argument consists of one or more lines, all but the last of
- which end with \\\\ to hide the new-line. Backslashes in text are treated
- like backslashes in the replacement string of an ssss command, and may be
- used to protect initial blanks and tabs against the stripping that is
- done on every script line. The _r_f_i_l_e or _w_f_i_l_e argument must terminate
- the command line and must be preceded by exactly one blank. Each _w_f_i_l_e
- is created before processing begins. There can be at most 10 distinct
- _w_f_i_l_e arguments.
-
- (1)aaaa\\\\
- _t_e_x_t Append. Place _t_e_x_t on the output before reading the next input
- line.
- (2)bbbb _l_a_b_e_l
- Branch to the :::: command bearing the _l_a_b_e_l. If _l_a_b_e_l is empty,
- branch to the end of the script.
- (2)cccc\\\\
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- SSSSEEEEDDDD((((1111)))) SSSSEEEEDDDD((((1111))))
-
-
-
- _t_e_x_t Change. Delete the pattern space. With 0 or 1 address or at
- the end of a 2-address range, place _t_e_x_t on the output. Start
- the next cycle.
- (2)dddd Delete the pattern space. Start the next cycle.
- (2)DDDD Delete the initial segment of the pattern space through the
- first new-line. Start the next cycle.
- (2)gggg Replace the contents of the pattern space by the contents of
- the hold space.
- (2)GGGG Append the contents of the hold space to the pattern space.
- (2)hhhh Replace the contents of the hold space by the contents of the
- pattern space.
- (2)HHHH Append the contents of the pattern space to the hold space.
- (1)iiii\\\\
- _t_e_x_t Insert. Place _t_e_x_t on the standard output.
- (2)llll List the pattern space on the standard output in an unambiguous
- form. Non-printable characters are displayed in octal notation
- and long lines are folded.
- (2)nnnn Copy the pattern space to the standard output. Replace the
- pattern space with the next line of input.
- (2)NNNN Append the next line of input to the pattern space with an
- embedded new-line. (The current line number changes.)
- (2)pppp Print. Copy the pattern space to the standard output.
- (2)PPPP Copy the initial segment of the pattern space through the first
- new-line to the standard output.
- (1)qqqq Quit. Branch to the end of the script. Do not start a new
- cycle.
- (2)rrrr _r_f_i_l_e
- Read the contents of _r_f_i_l_e. Place them on the output before
- reading the next input line.
- (2)ssss/_r_e_g_u_l_a_r _e_x_p_r_e_s_s_i_o_n/_r_e_p_l_a_c_e_m_e_n_t/_f_l_a_g_s
- Substitute the _r_e_p_l_a_c_e_m_e_n_t string for instances of the _r_e_g_u_l_a_r
- _e_x_p_r_e_s_s_i_o_n in the pattern space. Any character may be used
- instead of ////. For a fuller description see _e_d(1). _F_l_a_g_s is
- zero or more of:
- nnnn n= 1 - 512. Substitute for just the n th occurrence
- of the _r_e_g_u_l_a_r _e_x_p_r_e_s_s_i_o_n.
- gggg Global. Substitute for all nonoverlapping instances
- of the _r_e_g_u_l_a_r _e_x_p_r_e_s_s_i_o_n rather than just the first
- one.
- pppp Print the pattern space if a replacement was made.
- wwww _w_f_i_l_e Write. Append the pattern space to _w_f_i_l_e if a
- replacement was made.
- (2)tttt _l_a_b_e_l
- Test. Branch to the :::: command bearing the _l_a_b_e_l if any
- substitutions have been made since the most recent reading of
- an input line or execution of a tttt. If _l_a_b_e_l is empty, branch
- to the end of the script.
- (2)wwww _w_f_i_l_e
- Write. Append the pattern space to _w_f_i_l_e.
- (2)xxxx Exchange the contents of the pattern and hold spaces.
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- SSSSEEEEDDDD((((1111)))) SSSSEEEEDDDD((((1111))))
-
-
-
- (2)yyyy/_s_t_r_i_n_g_1/_s_t_r_i_n_g_2/
- Transform. Replace all occurrences of characters in _s_t_r_i_n_g_1
- with the corresponding character in _s_t_r_i_n_g_2. The lengths of
- _s_t_r_i_n_g_1 and _s_t_r_i_n_g_2 must be equal.
- (2)!!!! _f_u_n_c_t_i_o_n
- Don't. Apply the _f_u_n_c_t_i_o_n (or group, if _f_u_n_c_t_i_o_n is {{{{) only to
- lines _n_o_t selected by the address(es).
- (0):::: _l_a_b_e_l
- This command does nothing; it bears a _l_a_b_e_l for bbbb and tttt
- commands to branch to.
- (1)==== Place the current line number on the standard output as a line.
- (2){{{{ Execute the following commands through a matching }}}} only when
- the pattern space is selected.
- (0) An empty command is ignored.
- (0)#### If a #### appears as the first character on a line of a script
- file, then that entire line is treated as a comment, with one
- exception. If the character after the #### is an 'n', then the
- default output will be suppressed. The rest of the line after
- ####n is also ignored. A script file must contain at least one
- non-comment line.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- awk(1), ed(1), grep(1), regcomp(5).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-